【cuda+opencl安装记录】ubuntu18.04+cuda(含opencl)+cudnn |
您所在的位置:网站首页 › qt opencl调用 › 【cuda+opencl安装记录】ubuntu18.04+cuda(含opencl)+cudnn |
只要是从英伟达官方下载的cuda包,那么opencl就是包含在里面的。 我参考的三篇博文:一、 二、 三 感谢各位博主! 一、安装英伟达显卡驱动,网上博客很多,不再赘述。 二、安装cuda和cudnn 网上教程也很多,推荐一篇 (安装并配置好cuda后,命令行输入nvcc --version可显示cuda版本号。) 三、配置opencl opencl包含在cuda里,只需配置一下即可。 包括两部分, (1)确认: 1 opencl header -> /usr/local/include 将opencl头文件放入/usr/include sudo cp -a /usr/local/cuda-9.0/include/CL /usr/local/include 2 opencl libray -> /usr/lib 将opencl库文件放入/usr/lib sodu cp -a /usr/local/cuda-9.0/lib64/* /usr/lib (2)修改/etc/ls.so.conf,在其中添加cuda lib路径 sudo echo '/usr/local/cuda-8.0/lib64/' >> /etc/ld.so.conf 并 sudo ldconfig使之生效 四、测试cudnn是否安装成功 终端中输入如下: cd /usr/local/cuda/samples/1_Utilities/deviceQuery sudo make ./deviceQuery显示一堆文字,最后出现"Result = PASS"即为成功。 五、测试opencl效果 #include #include #include #ifdef MAC #include #else #include #endif int main() { /* Host data structures */ cl_platform_id *platforms; //每一个cl_platform_id 结构表示一个在主机上的OpenCL执行平台,就是指电脑中支持OpenCL的硬件,如nvidia显卡,intel CPU和显卡,AMD显卡和CPU等 cl_uint num_platforms; cl_int i, err, platform_index = -1; /* Extension data */ char* ext_data; size_t ext_size; const char icd_ext[] = "cl_khr_icd"; //要使platform工作,需要两个步骤。1 需要为cl_platform_id结构分配内存空间。2 需要调用clGetPlatformIDs初始化这些数据结构。一般还需要步骤0:询问主机上有多少platforms /* Find number of platforms */ //返回值如果为-1就说明调用函数失败,如果为0标明成功 //第二个参数为NULL代表要咨询主机上有多少个platform,并使用num_platforms取得实际flatform数量。 //第一个参数为1,代表我们需要取最多1个platform。可以改为任意大如:INT_MAX整数最大值。但是据说0,否则会报错,实际测试好像不会报错。下面是步骤0:询问主机有多少platforms err = clGetPlatformIDs(5, NULL, &num_platforms); if(err < 0) { perror("Couldn't find any platforms."); exit(1); } printf("I have platforms: %d\n", num_platforms); //本人计算机上显示为2,有intel和nvidia两个平台 /* Access all installed platforms */ //步骤1 创建cl_platform_id,并分配空间 platforms = (cl_platform_id*) malloc(sizeof(cl_platform_id) * num_platforms); //步骤2 第二个参数用指针platforms存储platform clGetPlatformIDs(num_platforms, platforms, NULL); /* Find extensions of all platforms */ //获取额外的平台信息。上面已经取得了平台id了,那么就可以进一步获取更加详细的信息了。 //一个for循环获取所有的主机上的platforms信息 for(i=0; i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |